Internet based video streaming has becoming much more practical since the advent of broadband networks capable of supporting the high bandwidths required for the transmission of video signals. Typically, a video server or video distribution server streams a given video—which may consist of a prerecorded video program (e.g., a movie) stored on the video server, or either a real-time (i.e., live) video program or a prerecorded video program provided to and then distributed by the video server—to a plurality of clients. This is the case, for example, in Internet video broadcasting applications such as, for example, IPTV (Internet Protocol Television). However, when a plurality of clients wish to simultaneously view a video program and to also collaborate in some endeavor related to the video program, only a separate parallel and independent interactive communication process between the clients is available for collaboration purposes. For example, the clients who wish to collaborate in an endeavor related to the video program may use a teleconference to verbally discuss the video being streamed, or may use an Internet chat to send text messages about the video to each other. In any case, they are generally unable to control the streaming of the video program about which they are collaborating.
Non-video collaborative environments for example 3D based have a different set of issues. Currently, when user collaboration is desired, the server maintains the state of the virtual world to ensure consistency for all users, thereby creating problems with low-latency applications. This occurs because a computer in this environment often cannot process a command and display the results until it has validated with the server, creating latency delays, especially over a wide-area network (WAN).
Much research has been done on this issue over the last ten years. A number of solutions have been put forward, some of which involve computing results on both client and server and correcting later if needed. These solutions may be satisfactory in some applications such as network games, but because they require specific programming they may be problematical when spontaneous user collaboration is desired. This is a long term issue since progress in latency reduction trails bandwidth and CPU improvements, as the former is tied to physical limits including the speed of light.